home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 8174 / 8174.xpi / chrome / antbar.jar / content / grabber / flvlist.js next >
Text File  |  2009-12-30  |  4KB  |  137 lines

  1. //
  2. //  flvlist.js
  3. //  firefox
  4. //  
  5. //  Created by Zak on 2008-06-12.
  6. //  Copyright 2008 Ant.com. All rights reserved.
  7. // 
  8.  
  9. var AntFlvList =
  10. {
  11.     listBox: null,
  12.     flvLinks: new AntArray(),
  13.  
  14.     init: function ()
  15.     {
  16.         var self = AntFlvList;
  17.     },
  18.     
  19.     /**
  20.      * Display the notification popup box
  21.      * @param flvLink       A flvLink object
  22.      */
  23.     notify: function (flvLink)
  24.     {
  25.         var listener =
  26.         {
  27.             observe: function(subject, topic, data) 
  28.             {
  29.                 if (topic == "alertclickcallback")
  30.                     AntFlvList.download(flvLink);
  31.             }
  32.         };
  33.  
  34.         try 
  35.         {
  36.             var title = AntLang.getFormatString("AntFlvList.NotificationTitle", flvLink.origin);
  37.             var text = AntLang.getFormatString("AntFlvList.NotificationText", flvLink.name);
  38.             var alertsService = AntLib.CCSV("@mozilla.org/alerts-service;1", "nsIAlertsService");
  39.  
  40.             alertsService.showAlertNotification("chrome://antbar/skin/logo.png", title, text, true, flvLink, listener);
  41.         }
  42.         catch (e)
  43.         {
  44.             AntLib.toLog("Cannot notify flvLInk = " + flvLink.url + " ex = " + e);
  45.         }
  46.     },
  47.  
  48.     /**
  49.      * Download a file
  50.      * @param if true the Firefox download manager won't be opened
  51.      */
  52.     download: function (flvLink, doNotOpen)
  53.     {
  54.         var self = AntFlvList;
  55.         var path = AntDownloadManager.downloadFlv(flvLink, doNotOpen);
  56.  
  57.         AntLib.toLog("Downloading : " + flvLink.url);
  58.     },
  59.     
  60.     /**
  61.      * getFlvLinkByUrl: return the flvLink object matching the url
  62.      * @param url to match
  63.      */
  64.     getFlvLinkByUrl: function (url)
  65.     {
  66.         var self = AntFlvList;
  67.         for (var i = 0; i < self.flvLinks.length; i++)
  68.             if (self.flvLinkCompare(self.flvLinks[i], {url: url}))
  69.                 return self.flvLinks[i];
  70.  
  71.         return null;
  72.     },
  73.  
  74.     /*
  75.      * Simple compare function for AntFlvLink objects
  76.      * @return              true if a and b are equal, false if not
  77.      */
  78.     flvLinkCompare: function (a, b)
  79.     {
  80.         return a.url == b.url;
  81.     },
  82.     
  83.     /**
  84.      * Drop the global this.flvLinks and regenerate the UI list
  85.      */
  86.     clean: function ()
  87.     {
  88.         var self = AntFlvList;
  89.         self.flvLinks = new AntArray();
  90.         self.refreshDisplay();
  91.     },
  92.     
  93.     /**
  94.      * Regenerate the UI list (drop and append loop)
  95.      */
  96.     refreshDisplay: function ()
  97.     {
  98.         var self = AntFlvList;
  99.         AntFlvUi.removeAll();
  100.         for (var i = 0; i < self.flvLinks.length; i++)
  101.         {
  102.             if (self.flvLinks[link].origin && self.flvLinks[link].url && self.flvLinks[link].name)
  103.                 AntFlvUi.appendItem(self.flvLinks[link].origin, self.flvLinks[link].url, self.flvLinks[link].name, i);
  104.         }
  105.     },
  106.     
  107.     /**
  108.      * Callback: fired from the context menu "Rename"
  109.      */
  110.     onPopupRename: function (event)
  111.     {
  112.         var self = AntFlvList;
  113.         var url = document.popupNode.childNodes[1].getAttribute('label');
  114.         var name = document.popupNode.childNodes[2].getAttribute('label');
  115.         var flvlink = self.getFlvLinkByUrl(url);
  116.  
  117.         name = name.replace(/_/g,' ');
  118.         var newName = prompt(AntLang.getFormatString("AntFlvList.PromptRenameText", name), name);
  119.  
  120.         if (!newName)
  121.             return;
  122.  
  123.         if (!newName.match(/^[\w -]+$/i))
  124.         {
  125.             alert(AntLang.getString("AntFlvList.InvalidFileName"));
  126.             return ;
  127.         }
  128.         if (flvlink)
  129.         {
  130.             flvlink.name = newName.replace(/[ ]/g,'_');
  131.             document.popupNode.childNodes[2].setAttribute('label', newName);
  132.         }
  133.  
  134.     },
  135.    
  136. }
  137.